package leetcode.weekly.week296;

// 前缀和 累加和 注意用long 
// Solution1Test

//涉及mod (int) 1e9 + 7 减法要加一个mod
//mod问题哪怕是最后+1也要补一次mod

//注意数据量，尤其累加和的时候，前缀和的时候，注意用long
//注意边界，尤其是特殊取用的数组边界，不要想当然，避免不必要的wa

// 小样本状态压缩，哈希表，枚举状态
// 奇偶性 & 前缀和 的思路

// 读懂，是个什么问题，写。
// 优先二分，单调栈。
public class Solution1 {

	// Solution1Test
	public int minMaxGame(int[] nums) {
		int len = nums.length;
		if (len == 1) {
			return nums[0];
		}
		int n = len >> 1;
		int[] newNums = new int[n];
		for (int i = 0; i < newNums.length; i++) {
			if ((i & 1) == 0) {
				newNums[i] = Math.min(nums[2 * i], nums[2 * i + 1]);
			} else {
				newNums[i] = Math.max(nums[2 * i], nums[2 * i + 1]);
			}
		}
		return this.minMaxGame(newNums);
	}

}
